package mianshi;

import java.util.*;

public class Main {

    public static void main(String[] args) {
        int[] data = {1,2,3,4};
        System.out.println(subsets(data));

    }

    // 子集，也叫子序列，不包含重复数字的-----暴力
    public static List<List<Integer>> subsets(int[] nums) {
        List<List<Integer>> res = new ArrayList<>();
        // 空集
        res.add(new ArrayList<>());
        for (int i = 0; i < nums.length; i++) {
            int size = res.size();
            for (int j = 0; j < size; j++) {
                List<Integer> tmp = new ArrayList<>(res.get(j));
                tmp.add(nums[i]);
                res.add(tmp);
            }
        }
        return res;
    }

    // 连续子序列
    public static List<List<Integer>> andSubSets(int[] nums) {

        List<List<Integer>> res = new ArrayList<>();
        for (int i = 0; i < nums.length; i++) {

            for (int j = i; j < nums.length; j++) {
                List<Integer> tmp = new ArrayList<>();
                for (int k = i; k <= j; k++) {
                    tmp.add(nums[k]);
                }
                res.add(tmp);
            }

        }
        return res;
    }

}
